﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Configuration;

using Telerik.WinControls;

namespace UnigenReport
{
    public partial class fConfig : Telerik.WinControls.UI.RadForm
    {

        #region Thiết lập

        public fConfig()
        {
            InitializeComponent();

            SetEvent();
        }

        /// <summary>
        /// Khai báo các sự kiện
        /// </summary>
        private void SetEvent()
        {
            KeyDown += fLogin_KeyDown;            
            btnSave.Click += btnSave_Click;
        }

        #endregion

        #region Hàm
        
        /// <summary>
        /// Lưu thông số cấu hình
        /// </summary>
        public void SaveConfig()
        {
            try
            {

                //Lấy các tham số
                var server = txtServer.Text.Trim();
                var catalog = txtCatalog.Text.Trim();
                var user = txtUserName.Text.Trim();
                var pass = txtPassword.Text.Trim();

                if (String.IsNullOrEmpty(server) || String.IsNullOrEmpty(catalog))
                {
                    Common.ShowNoticeMess("Không đủ thông tin");
                    return;
                }

                if (Common.ShowQuestion("Bạn có chắc chắn lưu thông số server không? \n NOTE : Cần chạy lại chương trình để thay đổi có hiệu lực") 
                            == System.Windows.Forms.DialogResult.Cancel)
                    return;

                //Lấy thông tin từ tệp cấu hình
                var cnn = String.Empty;
                if (chkNoPass.Checked)
                    cnn = String.Format(@"Data Source={0};Initial Catalog={1};Integrated Security=True", server, catalog);
                else
                    cnn = String.Format(@"Data Source={0};Initial Catalog={1};Persist Security Info=True;User ID={2};Password={3}"
                        , server, catalog, user, pass);

                if (Common.ChangeConnectionString(cnn))
                    this.DialogResult = System.Windows.Forms.DialogResult.OK;
                else
                    throw new Exception();
            }
            catch (Exception ex)
            {
                Common.ShowErrorMess("SaveConfig - " + ex.Message);
            }
        }        
        #endregion

        #region Sự kiện

        private void btnSave_Click(object sender, EventArgs e)
        {
            SaveConfig();
        }

        private void fLogin_KeyDown(object sender, KeyEventArgs e)
        {
            //Bắt phím Enter
            if(e.KeyCode == Keys.Enter)
                SaveConfig();
        }

        #endregion

    }
}
